package main

import "fmt"

type Pet interface {
	Name() string
}

type Dog struct {
	name string
}

func (d Dog) Name() string {
	return d.name
}

func main() {
	var dog *Dog
	fmt.Println(dog)
	fmt.Println(dog == nil)  // true
	var pet Pet = dog
	// var pet Pet = nil  // 注释掉上面的，试试这句
	fmt.Println(pet)
	fmt.Println(pet == nil)  // false
	// fmt.Printf("%T", pet)  // 打印动态类型
}